iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Modern Web

30天前端網頁技術超入門介紹系列 第 24

Day24. ES6(二) - 字串模板、標籤樣板

  • 分享至 

  • xImage
  •  

保護眼睛最好的東西,ES6 大勝利!

基本使用

使用兩個反引號 `` 就可以把你的樣板放在裡面。

let name = '';
let age = '';
let education = '';
let movement = '';
const text = `我的名字叫做${ name },
今年${ age }歲,是個平凡的${ education }生。
平常沒事做,所以都在${ movement }。`

比起傳統模板,ES6 的字串模板有幾個優點:

  • 使用 ${} 就可將變數帶入,不需使用一堆+號串聯起來,可讀性 up!
  • 可以直接換行,不須像早期一樣全部打在同一行上,或是一直使用反斜線來換行,可讀性在 up!

標籤樣板

字串樣板的上位版(應該啦
主要用法在字串模板的第一個反引號前新增一個名字,而新增的名字則是個 function 的名字。

let name = "基德";
let age = 22;
let template = funName`我叫${ name },是個${ age }`;

該 function 會接收原本字串樣板的資訊。將接收的資訊作為獨立的片段使用

function funName(strings, nameExp, ageExp){
    // strings 存放原本字串的獨立片段,以上面 template 為例
    let str0 = strings[0]; // 我是
    let str1 = strings[1]; // ,是個
    // nameExp 與 ageExp 則是接收原本字串樣板的變數。
    console.log('nameExp:', nameExp); // "基德"
    console.log('ageExp:', ageExp); // 22
}

最後需要將所有獨立片段做組合並返回

return str0 + nameExp + str1 + ageExp;

全部程式碼:

let name = "基德";
let age = 22;
function tag(strings, nameExp, ageExp){
    let str0 = strings[0];
    let str1 = strings[1];
    let ageStr;
    if(ageExp > 20){
        ageStr = '律師';
    }
    else{
        ageStr = '留級生';
    }
    return str0 + nameExp + str1 + ageStr;
};
let temp = tag`我叫${name},是個${age}`;
console.log(temp); // 我叫基德,是個律師

字串模板就如同第一句話說得,有他出現真好,想當初還在用+號做樣板的時候沒對好就全部歪了...
明天也是 ES6的介紹,只是還沒想到要寫啥~~


上一篇
Day23. ES6(一) - let、const 可能會忽略的小細節
下一篇
Day25. ES6(三) - 縮寫
系列文
30天前端網頁技術超入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言